Simple Storage Service (S3) 是 AWS 上面廣為人知且應用廣泛的服務,由於能應用的情境相當多,只要是需要將檔案獨立成一份份作為儲存至雲端上的情境幾乎都與他有關,也可以視為 AWS 的骨幹服務之一。
這邊顯示幾種不同類型的資料與其在 AWS 服務上對應的類型:
S3 服務的特性:
S3的收費方式要考量三點:
其中 S3 Transfer Acceleration 會在之後的CDN應用一併介紹。
S3 Standard : 持久的, 立即可用的, 頻繁存取的
99.99% availability, 99.999999999% durability
S3 Infrequently Accessed(IA) : 持久的, 立即可用的, 不頻繁存取的
與S3 Standard 一樣的服務水準但較低的儲存費用。當有請求時,有額外的資料取用費用。
S3 Reduced Redundancy Storage : 資料可以很簡單重新產生的,如圖片的縮圖
99.99% availability, 99.99% durability
Glacier : 資料僅需長久保存,平時不會需要調用。
非常便宜,調用該資料可接受3-5小時的等待時機。
Glacier 其實不是屬於 S3 的一部分,但因為有相關聯這邊一起提出比較。但在下一篇我們會介紹一下這項服務。
詳細比較可以參考官方資料
S3的資料一致性要分兩種,新增與更新。
而刪除資料我們也可以透過 remove maker 的方式來幫我們設定一個未來的刪除日期,等時間到了就會啟用刪除事件。
而在實務管理上,S3 更常與Glacier合作進行資料的長久保存,而真正超出保存期限的資料才從 Glacier 上面移除:
對於S3的版本控制與生命週期,可以參考這個影片的解說,會有一個更清楚的了解。
這邊節錄影片的說明:
這邊設定了超過三十天就進入到 Glacier,然後如果超過365天就直接標示移除,永久刪除不保存。
Key(name)
檔案的名稱
Value(data)
檔案的內容本體
Vesion ID
檔案版本控管ID
Metadata
檔案的描述資料,使用者可以自訂客製化的 metadata,藉此來為 object 標註不同的屬性值
Subresources
首先我們依樣先登入 AWS Console
然後在中間的輸入框查詢s3,或是透過左上角的 Services 點選到 Storage 下的 S3 服務:
當進入 S3 服務後就可以看到官方解說如何透過三步驟使用該服務:
首先先建立一個資料槽,填入對應的資料,這邊要注意名稱可能會被他人所取用了,記得要申請時填寫一個比較特別的名稱:
接著會詢問是否要關閉一些功能,包含版本管控、資料異動的紀錄、標籤與權限修改的紀錄等,都是蠻實用的功能。預設這些服務都是關閉的。
然後會問你該資料槽的權限是否要異動或是新增給其他使用者:
最後確認無誤後按下新增即可看到頁面已經添加了一個新的資料槽:
當我們點選剛進入資料槽後會看到四個類別選項:
Overview
從此處可以進行檔案新增或是增加分類資料夾
Properties
這邊可以開啟或是關閉剛剛設定的功能。
Permissions
這邊可以設定資料槽的存取權限
Management
這邊可以設定資料槽的生命週期的處理方式與其他功能設定
這邊我們先從第一個Overview新增一個檔案,並在選擇後直接按下左邊的上傳(即套用預設設定)
點選該檔案後可以看到檔案的連結,https://s3-ap-northeast-1.amazonaws.com/blackiecloudfiles/NFNDt.jpg:
但當點選後卻出現下面的畫面告訴我們權限不足無法瀏覽該檔案:
接著我們進去設定剛剛上傳檔案的權限設定處,將他開啟為公開對外的狀態:
然後返回先前的檔案連結,https://s3-ap-northeast-1.amazonaws.com/blackiecloudfiles/NFNDt.jpg,即可瀏覽該檔案了:
接著我們開啟儲存槽版控的功能:
而當我們換一張圖片用同樣檔名再上傳一次時,可以看到該檔案有了多個版本的選項:
當URL中的versionId為空值,則預設會連結至當前最新版本。
為了方便圖片使用,文章同步發佈在個人blogBlackie's Failed Notes當中